Skip to content

Update toolchain 2026-03-06#545

Open
LegNeato wants to merge 32 commits intomainfrom
pr-542-latest-nightly-refresh
Open

Update toolchain 2026-03-06#545
LegNeato wants to merge 32 commits intomainfrom
pr-542-latest-nightly-refresh

Conversation

@LegNeato
Copy link
Collaborator

@LegNeato LegNeato commented Mar 7, 2026

Requires #542

_args: &[OperandRef<'tcx, Self::Value>],
_is_cleanup: bool,
) -> Self::Value {
bug!("LLVM intrinsic call not supported in SPIR-V backend: {instance:?}")
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we want to use this rather than our own home-grown replacements, but didn't want to do it in this PR.

@LegNeato LegNeato force-pushed the pr-542-latest-nightly-refresh branch from 14cdf92 to 6434ab8 Compare March 7, 2026 00:22
@nazar-pc
Copy link
Contributor

nazar-pc commented Mar 7, 2026

cargo-gpu will need to be updated again to match this, custom target specs since recently require an unstable CLI option:

error: `.json` target specs require -Zjson-target-spec

@nazar-pc
Copy link
Contributor

nazar-pc commented Mar 8, 2026

Tried to update with a patched cargo-gpu locally and it worked, but generated these warnings that were not present before:

Details
warning: failed to find and remove `format_args!` construction for this `panic!`
    --> /home/nazar-pc/.rustup/toolchains/nightly-2026-03-06-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:2086:9
     |
2086 | /         ub_checks::assert_unsafe_precondition!(
2087 | |             check_language_ub,
2088 | |             "ptr::read_volatile requires that the pointer argument is aligned",
...    |
2092 | |             ) => ub_checks::maybe_is_aligned(addr, align)
2093 | |         );
     | |_________^
     |
     = note: compilation may later fail due to leftover `format_args!` internals
     = note: [RUST-GPU BUG] bailed from panic entry-point call args

warning: failed to find and remove `format_args!` construction for this `panic!`
   --> /home/nazar-pc/.rustup/toolchains/nightly-2026-03-06-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:531:5
    |
531 | /     ub_checks::assert_unsafe_precondition!(
532 | |         check_language_ub,
533 | |         "ptr::copy_nonoverlapping requires that both pointer arguments are aligned and non-null \
534 | |         and the specified memory ranges do not overlap",
...   |
547 | |     );
    | |_____^
    |
    = note: compilation may later fail due to leftover `format_args!` internals
    = note: [RUST-GPU BUG] bailed from panic entry-point call args

warning: failed to find and remove `format_args!` construction for this `panic!`
   --> /home/nazar-pc/.rustup/toolchains/nightly-2026-03-06-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/index.rs:240:9
    |
240 | /         assert_unsafe_precondition!(
241 | |             check_language_ub, // okay because of the `assume` below
242 | |             "slice::get_unchecked requires that the index is within the slice",
243 | |             (this: usize = self, len: usize = slice.len()) => this < len
244 | |         );
    | |_________^
    |
    = note: compilation may later fail due to leftover `format_args!` internals
    = note: [RUST-GPU BUG] bailed from fmt::Arguments::new call sequence ([Call(59851, 1387, [3516, 3517])])

warning: failed to find and remove `format_args!` construction for this `panic!`
   --> /home/nazar-pc/.rustup/toolchains/nightly-2026-03-06-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/index.rs:240:9
    |
240 | /         assert_unsafe_precondition!(
241 | |             check_language_ub, // okay because of the `assume` below
242 | |             "slice::get_unchecked requires that the index is within the slice",
243 | |             (this: usize = self, len: usize = slice.len()) => this < len
244 | |         );
    | |_________^
    |
    = note: compilation may later fail due to leftover `format_args!` internals
    = note: [RUST-GPU BUG] bailed from fmt::Arguments::new call sequence ([Call(59882, 1390, [3522, 3523])])

warning: failed to find and remove `format_args!` construction for this `panic!`
   --> /home/nazar-pc/.rustup/toolchains/nightly-2026-03-06-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/index.rs:260:9
    |
260 | /         assert_unsafe_precondition!(
261 | |             check_library_ub,
262 | |             "slice::get_unchecked_mut requires that the index is within the slice",
263 | |             (this: usize = self, len: usize = slice.len()) => this < len
264 | |         );
    | |_________^
    |
    = note: compilation may later fail due to leftover `format_args!` internals
    = note: [RUST-GPU BUG] bailed from fmt::Arguments::new call sequence ([Call(59911, 1381, [3527, 3528])])

warning: failed to find and remove `format_args!` construction for this `panic!`
   --> /home/nazar-pc/.rustup/toolchains/nightly-2026-03-06-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/index.rs:240:9
    |
240 | /         assert_unsafe_precondition!(
241 | |             check_language_ub, // okay because of the `assume` below
242 | |             "slice::get_unchecked requires that the index is within the slice",
243 | |             (this: usize = self, len: usize = slice.len()) => this < len
244 | |         );
    | |_________^
    |
    = note: compilation may later fail due to leftover `format_args!` internals
    = note: [RUST-GPU BUG] bailed from fmt::Arguments::new call sequence ([Call(59936, 1393, [3533, 3534])])

warning: failed to find and remove `format_args!` construction for this `panic!`
   --> /home/nazar-pc/.rustup/toolchains/nightly-2026-03-06-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/index.rs:240:9
    |
240 | /         assert_unsafe_precondition!(
241 | |             check_language_ub, // okay because of the `assume` below
242 | |             "slice::get_unchecked requires that the index is within the slice",
243 | |             (this: usize = self, len: usize = slice.len()) => this < len
244 | |         );
    | |_________^
    |
    = note: compilation may later fail due to leftover `format_args!` internals
    = note: [RUST-GPU BUG] bailed from fmt::Arguments::new call sequence ([Call(59967, 1396, [3539, 3540])])

warning: failed to find and remove `format_args!` construction for this `panic!`
   --> /home/nazar-pc/.rustup/toolchains/nightly-2026-03-06-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/index.rs:240:9
    |
240 | /         assert_unsafe_precondition!(
241 | |             check_language_ub, // okay because of the `assume` below
242 | |             "slice::get_unchecked requires that the index is within the slice",
243 | |             (this: usize = self, len: usize = slice.len()) => this < len
244 | |         );
    | |_________^
    |
    = note: compilation may later fail due to leftover `format_args!` internals
    = note: [RUST-GPU BUG] bailed from fmt::Arguments::new call sequence ([Call(59998, 1399, [3545, 3546])])

warning: failed to find and remove `format_args!` construction for this `panic!`
   --> /home/nazar-pc/.rustup/toolchains/nightly-2026-03-06-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/index.rs:260:9
    |
260 | /         assert_unsafe_precondition!(
261 | |             check_library_ub,
262 | |             "slice::get_unchecked_mut requires that the index is within the slice",
263 | |             (this: usize = self, len: usize = slice.len()) => this < len
264 | |         );
    | |_________^
    |
    = note: compilation may later fail due to leftover `format_args!` internals
    = note: [RUST-GPU BUG] bailed from fmt::Arguments::new call sequence ([Call(60027, 1384, [3550, 3551])])

warning: failed to find and remove `format_args!` construction for this `panic!`
   --> /home/nazar-pc/.rustup/toolchains/nightly-2026-03-06-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/index.rs:240:9
    |
240 | /         assert_unsafe_precondition!(
241 | |             check_language_ub, // okay because of the `assume` below
242 | |             "slice::get_unchecked requires that the index is within the slice",
243 | |             (this: usize = self, len: usize = slice.len()) => this < len
244 | |         );
    | |_________^
    |
    = note: compilation may later fail due to leftover `format_args!` internals
    = note: [RUST-GPU BUG] bailed from fmt::Arguments::new call sequence ([Call(60052, 1402, [3556, 3557])])

warning: failed to find and remove `format_args!` construction for this `panic!`
   --> /home/nazar-pc/.rustup/toolchains/nightly-2026-03-06-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/index.rs:326:9
    |
326 | /         assert_unsafe_precondition!(
327 | |             check_library_ub,
328 | |             "slice::get_unchecked_mut requires that the index is within the slice",
329 | |             (end: usize = self.end(), len: usize = slice.len()) => end <= len
330 | |         );
    | |_________^
    |
    = note: compilation may later fail due to leftover `format_args!` internals
    = note: [RUST-GPU BUG] bailed from fmt::Arguments::new call sequence ([Call(60985, 1071, [60970]), Call(60988, 1378, [3948, 3949])])

@nazar-pc nazar-pc mentioned this pull request Mar 8, 2026
@LegNeato
Copy link
Collaborator Author

LegNeato commented Mar 8, 2026

Cool, I'll take a look. There were some changes in this area.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder whether this is still needed? After #148789, we can simply detect Arguments::from_str if the argument is a const str.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

panic and panic_nounwind use Arguments::from_str. But panic_display / unreachable_display still go through format_args and panic_bounds_check also formats dynamic values. So I think we need both.


let value = match name {
sym::likely | sym::unlikely => {
_ if name == sym::unlikely || name.as_str() == "likely" => {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there any reason for this change?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sym::likely was removed, now checking it a different way.

LegNeato added 23 commits March 10, 2026 17:47
@LegNeato LegNeato force-pushed the pr-542-latest-nightly-refresh branch from 2fe48e0 to db063f6 Compare March 11, 2026 00:50
@LegNeato LegNeato marked this pull request as ready for review March 11, 2026 18:15
@LegNeato
Copy link
Collaborator Author

@nazar-pc I think what you saw should be fixed.

@nazar-pc
Copy link
Contributor

Yes, clippy is happy now, tests are passing too

@LegNeato LegNeato requested a review from fee1-dead March 12, 2026 06:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants